home *** CD-ROM | disk | FTP | other *** search
/ 3D Game Programming All in One / 3D Game Programming All in One Disc.iso / 3D2E / demo / client / scripts / messageHud.cs < prev    next >
Encoding:
Text File  |  2005-11-23  |  2.9 KB  |  113 lines

  1. //-----------------------------------------------------------------------------
  2. // Torque Game Engine 
  3. // Copyright (C) GarageGames.com, Inc.
  4. //-----------------------------------------------------------------------------
  5.  
  6. //----------------------------------------------------------------------------
  7. // Enter Chat Message Hud
  8. //----------------------------------------------------------------------------
  9.  
  10. //------------------------------------------------------------------------------
  11.  
  12. function MessageHud::open(%this)
  13. {
  14.    %offset = 6;
  15.  
  16.    if(%this.isVisible())
  17.       return;
  18.  
  19.    if(%this.isTeamMsg)
  20.       %text = "TEAM:";
  21.    else
  22.       %text = "GLOBAL:";
  23.  
  24.    MessageHud_Text.setValue(%text);
  25.    
  26.    %windowPos = "0 " @ ( getWord( outerChatHud.position, 1 ) + getWord( outerChatHud.extent, 1 ) + 1 );
  27.    %windowExt = getWord( OuterChatHud.extent, 0 ) @ " " @ getWord( MessageHud_Frame.extent, 1 );
  28.    
  29.    %textExtent = getWord(MessageHud_Text.extent, 0) + 14;
  30.    %ctrlExtent = getWord(MessageHud_Frame.extent, 0);
  31.  
  32.    Canvas.pushDialog(%this);
  33.    
  34.    messageHud_Frame.position = %windowPos;
  35.    messageHud_Frame.extent = %windowExt;
  36.    MessageHud_Edit.position = setWord(MessageHud_Edit.position, 0, %textExtent + %offset);
  37.    MessageHud_Edit.extent = setWord(MessageHud_Edit.extent, 0, %ctrlExtent - %textExtent - (2 * %offset));
  38.  
  39.    %this.setVisible(true);
  40.    deactivateKeyboard();
  41.    MessageHud_Edit.makeFirstResponder(true);
  42. }
  43.  
  44. //------------------------------------------------------------------------------
  45.  
  46. function MessageHud::close(%this)
  47. {
  48.    if(!%this.isVisible())
  49.       return;
  50.       
  51.    Canvas.popDialog(%this);
  52.    %this.setVisible(false);
  53.    if ( $enableDirectInput )
  54.       activateKeyboard();
  55.    MessageHud_Edit.setValue("");
  56. }
  57.  
  58.  
  59. //------------------------------------------------------------------------------
  60.  
  61. function MessageHud::toggleState(%this)
  62. {
  63.    if(%this.isVisible())
  64.       %this.close();
  65.    else
  66.       %this.open();
  67. }
  68.  
  69. //------------------------------------------------------------------------------
  70.  
  71. function MessageHud_Edit::onEscape(%this)
  72. {
  73.    MessageHud.close();
  74. }
  75.  
  76. //------------------------------------------------------------------------------
  77.  
  78. function MessageHud_Edit::eval(%this)
  79. {
  80.    %text = trim(%this.getValue());
  81.    if(%text !$= "")
  82.    {
  83.       if(MessageHud.isTeamMsg)
  84.          commandToServer('teamMessageSent', %text);
  85.       else
  86.          commandToServer('messageSent', %text);
  87.    }
  88.  
  89.    MessageHud.close();
  90. }
  91.  
  92.    
  93. //----------------------------------------------------------------------------
  94. // MessageHud key handlers
  95.  
  96. function toggleMessageHud(%make)
  97. {
  98.    if(%make)
  99.    {
  100.       MessageHud.isTeamMsg = false;
  101.       MessageHud.toggleState();
  102.    }
  103. }
  104.  
  105. function teamMessageHud(%make)
  106. {
  107.    if(%make)
  108.    {
  109.       MessageHud.isTeamMsg = true;
  110.       MessageHud.toggleState();
  111.    }
  112. }
  113.